
 /**
 * 文 件 名:  BaseDaoImpl.java
 * 版    权:  TianSi Company . Copyright YYYY-YYYY,  All rights reserved
 * 描    述:  数据访问实现
 * 修 改 人:  严华
 * 修改时间:  2012-11-20
 * <修改描述:>
 */
package com.yh.base.dao.impl;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;

import com.yh.base.dao.BaseDao;


 /**
  * <功能描述>
  * 数据访问实现
  * <功能描述>
  * 
  * @author  严华
  * @version  [版本号, 2012-11-20]
  * @see  [相关类/方法]
  * @since  [产品/模块版本]
  */
@Repository
public class BaseDaoImpl implements BaseDao {
    
    @Autowired
    SqlSessionFactory sqlSessionFactory;
    
    /**
     * @param sqlName
     * @param param
     */
    public <K, V> void comAdd(String sqlName, Map<K, V> param) {
        this.getSqlTemplate().insert(sqlName, param);
    }
    
    /**
     * @param sqlName
     * @param param
     */
    public <K, V> void comDel(String sqlName, Map<K, V> param) {
        this.getSqlTemplate().delete(sqlName, param);
    }
    
    /**
     * @param sqlName
     * @param param
     */
    public <K, V> void comModify(String sqlName, Map<K, V> param) {
        this.getSqlTemplate().update(sqlName, param);
    }
    
    /**
     * @param sqlName
     * @param param
     * @return
     */
    public <K, T, V> T comFindOne(String sqlName, Map<K, V> param) {
        return this.getSqlTemplate().selectOne(sqlName, param);
    }
    
    /**
     * @param sqlName
     * @param param
     * @return
     */
    public <K, T, V> List<T> comFindList(String sqlName, Map<K, V> param) {
        return this.getSqlTemplate().selectList(sqlName, param);
    }
    
    /**
     * 
      * 取得SqlSessionTemplate用于访问数据库
      * 
      * @return SqlSessionTemplate 
      *     Spring-MyBatis 数据库操作模板
     */
    protected SqlSessionTemplate getSqlTemplate() {
        SqlSessionTemplate sqlSessionTemplate = new SqlSessionTemplate(sqlSessionFactory);
        return sqlSessionTemplate;
    }
    
}
